From 3f9923ca88169d122bfd71b63c1c48dea2f118a6 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Tue, 7 Mar 2006 17:08:20 -0700 Subject: [PATCH] [IA64] Guarantee VTi guest can get correct frequency base Because some platforms don't implement pal_freq_base call in PAL, in this case, call host SAL sal_freq_base instead to get correct freqency base value. Signed-off-by: Zhang Xiantao Signed-off-by: Yu Ke --- xen/arch/ia64/vmx/pal_emul.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xen/arch/ia64/vmx/pal_emul.c b/xen/arch/ia64/vmx/pal_emul.c index 3c9737cba3..e132786b90 100644 --- a/xen/arch/ia64/vmx/pal_emul.c +++ b/xen/arch/ia64/vmx/pal_emul.c @@ -20,6 +20,7 @@ #include #include +#include static void get_pal_parameters (VCPU *vcpu, UINT64 *gr29, @@ -182,8 +183,16 @@ pal_fixed_addr(VCPU *vcpu){ static struct ia64_pal_retval pal_freq_base(VCPU *vcpu){ struct ia64_pal_retval result; + struct ia64_sal_retval isrv; PAL_CALL(result,PAL_FREQ_BASE, 0, 0, 0); + if(result.v0 == 0){ //PAL_FREQ_BASE may not be implemented in some platforms, call SAL instead. + SAL_CALL(isrv, SAL_FREQ_BASE, + SAL_FREQ_BASE_PLATFORM, 0, 0, 0, 0, 0, 0); + result.status = isrv.status; + result.v0 = isrv.v0; + result.v1 = result.v2 =0; + } return result; } -- 2.30.2